import java.util.Scanner;
public class Main {
    public static String[] mySplit(String str,char symbol) {
        //要不要先遍历一次数组，通过找到的分隔符数量来进行创建二维数组？
        //但是那样就提高了时间复杂度
        //无需是正则表达式 只管分割即可

        /**
         * 创建一个临时的数组tmp，将其长度设定为str的字符长度的一半，这就考虑到了最坏的情况
         * 使用i遍历str字符串 使用k记录实际有效元素个数
         * 当最后一个字符不是分隔符时，会导致最后一个子字符串无法保存，故先判断对其处理*/
        if(str.charAt(str.length()-1)!=symbol) {
            str+=symbol;
        }
        String[] tmp = new String[str.length()/2];
        int i = 0;
        int k = 0;
        String strTmp = "";
        while(i < str.length()) {
            if(str.charAt(i) != symbol) {
                //在未遇分隔符之前，将字符连接
                strTmp+=str.charAt(i);
                i++;
            } else {
                //遇到分隔符，将上一段字符存储，k++,重置暂存器,while循环跳过分隔符
                tmp[k] = strTmp;
                k++;
                strTmp="";
                //消除多个分隔符
                while(str.charAt(i)==symbol) {
                    i++;
                    if(i>=str.length()) {
                        break;
                    }
                }
            }
        }
        //返回一个内存合适的字符串数组
        String[] ret = new String[k];

        for(i = 0; i < k; i++) {
            ret[i] = tmp[i];
        }
        return ret;
    }
    public static void main(String[] args) {
        //模拟实现split 能够指定分割符将字符串拆分成字符串数组
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();

        String[] ret = mySplit(str,' ');
        for (int i = 0; i < ret.length; i++) {
            System.out.println(ret[i]);
        }

    }
//    public static void main(String[] args) {
//        String str = "hello world";
//        int pos = 0;
//        while(str.charAt(pos)>= 57);
//    }
}